package timing.ukulele.auth.persistent;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import timing.ukulele.persistence.model.IdModel;

import java.io.Serializable;
import java.time.LocalDateTime;

@TableName("oauth2_registered_client")
public class RegisteredClientSimple implements Serializable, IdModel<String> {
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;
    @TableField("client_id")
    private String clientId;
    @TableField("client_id_issued_at")
    private LocalDateTime clientIdIssuedAt;
    @TableField("client_secret")
    private String clientSecret;
    @TableField("client_secret_expires_at")
    private LocalDateTime clientSecretExpiresAt;
    @TableField("client_name")
    private String clientName;
    @TableField("client_authentication_methods")
    private String clientAuthenticationMethods;
    @TableField("authorization_grant_types")
    private String authorizationGrantTypes;
    @TableField("redirect_uris")
    private String redirectUris;
    @TableField("post_logout_redirect_uris")
    private String postLogoutRedirectUris;
    @TableField("scopes")
    private String scopes;

    @Override
    public void setId(String id) {
        this.id = id;
    }

    @Override
    public String getId() {
        return id;
    }

    public String getClientId() {
        return clientId;
    }

    public void setClientId(String clientId) {
        this.clientId = clientId;
    }

    public LocalDateTime getClientIdIssuedAt() {
        return clientIdIssuedAt;
    }

    public void setClientIdIssuedAt(LocalDateTime clientIdIssuedAt) {
        this.clientIdIssuedAt = clientIdIssuedAt;
    }

    public String getClientSecret() {
        return clientSecret;
    }

    public void setClientSecret(String clientSecret) {
        this.clientSecret = clientSecret;
    }

    public LocalDateTime getClientSecretExpiresAt() {
        return clientSecretExpiresAt;
    }

    public void setClientSecretExpiresAt(LocalDateTime clientSecretExpiresAt) {
        this.clientSecretExpiresAt = clientSecretExpiresAt;
    }

    public String getClientName() {
        return clientName;
    }

    public void setClientName(String clientName) {
        this.clientName = clientName;
    }

    public String getClientAuthenticationMethods() {
        return clientAuthenticationMethods;
    }

    public void setClientAuthenticationMethods(String clientAuthenticationMethods) {
        this.clientAuthenticationMethods = clientAuthenticationMethods;
    }

    public String getAuthorizationGrantTypes() {
        return authorizationGrantTypes;
    }

    public void setAuthorizationGrantTypes(String authorizationGrantTypes) {
        this.authorizationGrantTypes = authorizationGrantTypes;
    }

    public String getRedirectUris() {
        return redirectUris;
    }

    public void setRedirectUris(String redirectUris) {
        this.redirectUris = redirectUris;
    }

    public String getPostLogoutRedirectUris() {
        return postLogoutRedirectUris;
    }

    public void setPostLogoutRedirectUris(String postLogoutRedirectUris) {
        this.postLogoutRedirectUris = postLogoutRedirectUris;
    }

    public String getScopes() {
        return scopes;
    }

    public void setScopes(String scopes) {
        this.scopes = scopes;
    }
}
